﻿//////////////////////////////////////////////////////////////////
//
// World_JourneyTimes.cs
//
// Copyright (c) 2012 Dan Pike. All rights reserved
//
// Refer to license.txt for any license restrictions.
// 
using Entities;
using Entities.Cities;
using Entities.Materials;
using Logger4Net;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace Entities
{
   public partial class World
   {
      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesAalborg
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(ahus, 1.5);
            result.Add(bergen, 2.5);
            result.Add(berlin, 0.0);
            result.Add(breslau, 0.0);
            result.Add(boston, 3.5);
            result.Add(bremen, 2.7);
            result.Add(bruges, 3.5);
            result.Add(cologne, 3.7);
            result.Add(danzig, 2.4);
            result.Add(edinburgh, 3.3);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 1.2);
            result.Add(gothenburg, 0.5);
            result.Add(groningen, 2.5);
            result.Add(haarlem, 3);
            result.Add(hamburg, 2.6);
            result.Add(helsinki, 4.4);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 2.6);
            result.Add(london, 3.9);
            result.Add(lubeck, 1.4);
            result.Add(malmo, 0.9);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.9);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 5.8);
            result.Add(oslo, 1.1);
            result.Add(posen, 0.0);
            result.Add(reval, 4.2);
            result.Add(riga, 3.8);
            result.Add(ripen, 1.9);
            result.Add(scarborough, 3.2);
            result.Add(stavanger,  1.8);
            result.Add(stettin, 1.7);
            result.Add(stockholm, 3.2);
            result.Add(thorn, 2.8);
            result.Add(visby, 2.6);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesAhus
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(bergen, 3.8);
            result.Add(boston, 4.8);
            result.Add(bremen, 4);
            result.Add(berlin, 0.0);
            result.Add(breslau, 0.0);
            result.Add(bruges, 4.8);
            result.Add(cologne, 4.8);
            result.Add(danzig, 1.2);
            result.Add(edinburgh, 4.6);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 1.4);
            result.Add(gothenburg, 1.7);
            result.Add(groningen, 3.8);
            result.Add(haarlem, 4.4);
            result.Add(hamburg, 4);
            result.Add(helsinki, 3.1);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 1.4);
            result.Add(london, 5.2);
            result.Add(lubeck, 1.2);
            result.Add(malmo, 0.7);
            result.Add(minden, 0.0);
            result.Add(naestved, 1.4);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 4.6);
            result.Add(oslo, 2.4);
            result.Add(posen, 0.0);
            result.Add(reval, 2.9);
            result.Add(riga, 2.5);
            result.Add(ripen, 3.2);
            result.Add(scarborough, 4.5);
            result.Add(stavanger, 3.2);
            result.Add(stettin, 0.9);
            result.Add(stockholm, 1.9);
            result.Add(thorn, 1.7);
            result.Add(visby, 1.2);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesBergen
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(boston,  3.3);
            result.Add(bremen,  3.2);
            result.Add(berlin, 0.0);
            result.Add(breslau, 0.0);
            result.Add(bruges, 3.6);
            result.Add(cologne, 3.8);
            result.Add(danzig, 4.8);
            result.Add(edinburgh, 2.4);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 3.7);
            result.Add(gothenburg, 2.3);
            result.Add(groningen, 2.9);
            result.Add(haarlem, 3.2);
            result.Add(hamburg, 3.2);
            result.Add(helsinki, 6.8);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 4.9);
            result.Add(london, 3.9);
            result.Add(lubeck, 3.8);
            result.Add(malmo, 3.2);
            result.Add(minden, 0.0);
            result.Add(naestved, 3.4);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 7.8);
            result.Add(oslo, 2.5);
            result.Add(posen, 0.0);
            result.Add(reval, 6.6);
            result.Add(riga, 6.2);
            result.Add(ripen, 2.4);
            result.Add(rostock, 3.7);
            result.Add(scarborough,  2.7);
            result.Add(stavanger, 0.7);
            result.Add(stettin, 4.0);
            result.Add(stockholm, 5.6);
            result.Add(thorn, 4.8);
            result.Add(visby, 4.9);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesBerlin
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(breslau, 0.0);
            result.Add(bruges, 0.0);
            result.Add(cologne, 0.0);
            result.Add(danzig, 0.0);
            result.Add(edinburgh, 0.0);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 0.0);
            result.Add(gothenburg, 0.0);
            result.Add(groningen, 0.0);
            result.Add(haarlem, 0.0);
            result.Add(hamburg, 0.0);
            result.Add(helsinki, 0.0);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 0.0);
            result.Add(london, 0.0);
            result.Add(lubeck, 0.0);
            result.Add(malmo, 0.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.0);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 0.0);
            result.Add(oslo, 0.0);
            result.Add(posen, 0.0);
            result.Add(reval, 0.0);
            result.Add(riga, 0.0);
            result.Add(ripen, 0.0);
            result.Add(scarborough, 0.0);
            result.Add(stavanger, 0.0);
            result.Add(stettin, 0.0);
            result.Add(stockholm, 0.0);
            result.Add(thorn, 0.0);
            result.Add(visby, 0.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesBoston
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(bremen, 2.2);
            result.Add(berlin, 0.0);
            result.Add(breslau, 0.0);
            result.Add(bruges, 1.0);
            result.Add(cologne, 1.7);
            result.Add(danzig, 5.8);
            result.Add(edinburgh, 1.6);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 4.7);
            result.Add(gothenburg, 3.3);
            result.Add(groningen, 1.5);
            result.Add(haarlem, 1.1);
            result.Add(hamburg, 2.3);
            result.Add(helsinki, 7.7);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 6.0);
            result.Add(london, 1.2);
            result.Add(lubeck, 4.8);
            result.Add(malmo, 4.2);
            result.Add(minden, 0.0);
            result.Add(naestved, 4.3);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 8.7);
            result.Add(oslo, 3.7);
            result.Add(posen, 0.0);
            result.Add(reval, 7.5);
            result.Add(riga, 7.2);
            result.Add(ripen, 2.1);
            result.Add(rostock, 4.7);
            result.Add(scarborough, 0.6);
            result.Add(stavanger, 2.7);
            result.Add(stettin, 5.0);
            result.Add(stockholm, 6.6);
            result.Add(thorn, 5.6);
            result.Add(visby, 5.9);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesBremen
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(berlin, 0.0);
            result.Add(breslau, 0.0);
            result.Add(bruges, 1.9);
            result.Add(cologne, 2.3);
            result.Add(danzig, 4.9);
            result.Add(edinburgh, 2.8);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 3.8);
            result.Add(gothenburg, 2.5);
            result.Add(groningen, 0.8);
            result.Add(haarlem, 1.5);
            result.Add(hamburg, 0.7);
            result.Add(helsinki, 6.9);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 5.0);
            result.Add(london, 2.4);
            result.Add(lubeck, 4.0);
            result.Add(malmo, 3.3);
            result.Add(minden, 0.0);
            result.Add(naestved, 3.5);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 7.9);
            result.Add(oslo, 2.9);
            result.Add(posen, 0.0);
            result.Add(reval, 6.7);
            result.Add(riga, 6.3);
            result.Add(ripen, 0.9);
            result.Add(rostock, 3.8);
            result.Add(scarborough, 2.2);
            result.Add(stavanger, 2.5);
            result.Add(stettin, 4.2);
            result.Add(stockholm, 5.7);
            result.Add(thorn, 4.9);
            result.Add(visby, 5.1 );
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesBreslau
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(bruges, 0.0);
            result.Add(cologne, 0.0);
            result.Add(danzig, 0.0);
            result.Add(edinburgh, 0.0);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 0.0);
            result.Add(gothenburg, 0.0);
            result.Add(groningen, 0.0);
            result.Add(haarlem, 0.0);
            result.Add(hamburg, 0.0);
            result.Add(helsinki, 0.0);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 0.0);
            result.Add(london, 0.0);
            result.Add(lubeck, 0.0);
            result.Add(malmo, 0.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.0);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 0.0);
            result.Add(oslo, 0.0);
            result.Add(posen, 0.0);
            result.Add(reval, 0.0);
            result.Add(riga, 0.0);
            result.Add(ripen, 0.0);
            result.Add(scarborough, 0.0);
            result.Add(stavanger, 0.0);
            result.Add(stettin, 0.0);
            result.Add(stockholm, 0.0);
            result.Add(thorn, 0.0);
            result.Add(visby, 0.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesBruges
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(cologne, 1.1);
            result.Add(danzig, 5.8);
            result.Add(edinburgh, 2.3);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 4.7);
            result.Add(gothenburg, 3.3);
            result.Add(groningen, 1.2);
            result.Add(haarlem, 0.5);
            result.Add(hamburg, 2.0);
            result.Add(helsinki, 7.7);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 5.8);
            result.Add(london, 0.7);
            result.Add(lubeck, 4.8);
            result.Add(malmo, 4.2);
            result.Add(minden, 0.0);
            result.Add(naestved, 4.3);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 8.6);
            result.Add(oslo, 3.7);
            result.Add(posen, 0.0);
            result.Add(reval, 7.5);
            result.Add(riga, 7.1);
            result.Add(ripen, 1.9);
            result.Add(rostock, 4.7);
            result.Add(scarborough, 1.3);
            result.Add(stavanger, 3.0);
            result.Add(stettin, 5.0);
            result.Add(stockholm, 6.5);
            result.Add(thorn, 5.6);
            result.Add(visby, 5.9);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesCologne
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(danzig, 5.6);
            result.Add(edinburgh, 2.7);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 4.7);
            result.Add(gothenburg, 3.5);
            result.Add(groningen, 1.7);
            result.Add(haarlem, 1.1);
            result.Add(hamburg, 2.4);
            result.Add(helsinki, 7.3);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 5.8);
            result.Add(london, 1.6);
            result.Add(lubeck, 4.8);
            result.Add(malmo, 4.2);
            result.Add(minden, 0.0);
            result.Add(naestved, 4.4);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 9.3);
            result.Add(oslo, 3.8);
            result.Add(posen, 0.0);
            result.Add(reval, 7.1);
            result.Add(riga, 6.8);
            result.Add(ripen, 2.3);
            result.Add(rostock, 4.7);
            result.Add(scarborough, 1.9);
            result.Add(stavanger, 3.3);
            result.Add(stettin, 4.9);
            result.Add(stockholm, 6.3);
            result.Add(thorn, 6.3);
            result.Add(visby, 5.7);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesDanzig
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(edinburgh, 5.6);
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 2.2);
            result.Add(gothenburg, 2.6);
            result.Add(groningen, 4.8);
            result.Add(haarlem, 5.3);
            result.Add(hamburg, 4.9);
            result.Add(helsinki, 2.9);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 0.5);
            result.Add(london, 6.2);
            result.Add(lubeck, 2.0);
            result.Add(malmo, 1.7);
            result.Add(minden, 0.0);
            result.Add(naestved, 2.2);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 4.5);
            result.Add(oslo, 3.4);
            result.Add(posen, 0.0);
            result.Add(reval, 2.7);
            result.Add(riga, 2.2);
            result.Add(ripen, 4.1);
            result.Add(rostock, 1.8);
            result.Add(scarborough, 5.5);
            result.Add(stavanger, 4.1);
            result.Add(stettin, 1.4);
            result.Add(stockholm, 2.1);
            result.Add(thorn, 0.7);
            result.Add(visby, 1.4);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesEdinburgh
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(erfurt, 0.0);
            result.Add(flensburg, 4.4);
            result.Add(gothenburg, 3.1);
            result.Add(groningen, 2.2);
            result.Add(haarlem, 2.1);
            result.Add(hamburg, 2.9);
            result.Add(helsinki, 7.5);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 5.6);
            result.Add(london, 2.5);
            result.Add(lubeck, 4.6);
            result.Add(malmo, 4.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 4.1);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 8.5);
            result.Add(oslo, 3.3);
            result.Add(posen, 0.0);
            result.Add(reval, 7.3);
            result.Add(riga, 7.0);
            result.Add(ripen, 2.4);
            result.Add(rostock, 4.5);
            result.Add(scarborough, 1.0);
            result.Add(stavanger, 2.0);
            result.Add(stettin,  4.8);
            result.Add(stockholm, 6.4);
            result.Add(thorn, 5.4);
            result.Add(visby, 5.7);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesErfurt
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(flensburg, 0.0);
            result.Add(gothenburg, 0.0);
            result.Add(groningen, 0.0);
            result.Add(haarlem, 0.0);
            result.Add(hamburg, 0.0);
            result.Add(helsinki, 0.0);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 0.0);
            result.Add(london, 0.0);
            result.Add(lubeck, 0.0);
            result.Add(malmo, 0.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.0);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 0.0);
            result.Add(oslo, 0.0);
            result.Add(posen, 0.0);
            result.Add(reval, 0.0);
            result.Add(riga, 0.0);
            result.Add(ripen, 0.0);
            result.Add(scarborough, 0.0);
            result.Add(stavanger, 0.0);
            result.Add(stettin, 0.0);
            result.Add(stockholm, 0.0);
            result.Add(thorn, 0.0);
            result.Add(visby, 0.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesFlensburg
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(gothenburg, 1.6);
            result.Add(groningen, 3.7);
            result.Add(haarlem, 4.2);
            result.Add(hamburg, 3.8);
            result.Add(helsinki, 4.3);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 2.4);
            result.Add(london, 5.1);
            result.Add(lubeck, 0.6);
            result.Add(malmo, 1.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.5);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 5.7);
            result.Add(oslo, 2.3);
            result.Add(posen, 0.0);
            result.Add(reval, 4.1);
            result.Add(riga, 3.7);
            result.Add(ripen, 3.0);
            result.Add(rostock, 0.6);
            result.Add(scarborough, 4.3);
            result.Add(stavanger, 3.0);
            result.Add(stettin,  1.4);
            result.Add(stockholm, 3.1);
            result.Add(thorn, 2.6);
            result.Add(visby, 2.4);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesGothenburg
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(groningen, 2.3);
            result.Add(haarlem, 2.9);
            result.Add(hamburg, 2.5);
            result.Add(helsinki, 4.6);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 2.8);
            result.Add(london, 3.7);
            result.Add(lubeck, 1.7);
            result.Add(malmo, 1.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 1.2);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 6.0);
            result.Add(oslo, 0.8);
            result.Add(posen, 0.0);
            result.Add(reval, 4.4);
            result.Add(riga, 4.0);
            result.Add(ripen, 1.7);
            result.Add(rostock, 1.5);
            result.Add(scarborough, 3.0);
            result.Add(stavanger, 1.7);
            result.Add(stettin,  1.8);
            result.Add(stockholm, 3.4);
            result.Add(thorn, 2.9);
            result.Add(visby, 2.7);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesGroningen
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(haarlem, 0.8);
            result.Add(hamburg, 0.9);
            result.Add(helsinki, 6.7);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 4.9);
            result.Add(london, 1.7);
            result.Add(lubeck, 3.8);
            result.Add(malmo, 3.2);
            result.Add(minden, 0.0);
            result.Add(naestved, 3.3);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 7.8);
            result.Add(oslo, 2.7);
            result.Add(posen, 0.0);
            result.Add(reval, 6.5);
            result.Add(riga, 6.2);
            result.Add(ripen, 0.8);
            result.Add(rostock, 3.7);
            result.Add(scarborough, 1.5);
            result.Add(stavanger, 2.2);
            result.Add(stettin, 4.0);
            result.Add(stockholm, 5.6);
            result.Add(thorn, 4.7);
            result.Add(visby, 4.9);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesHaarlem
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(hamburg, 1.6);
            result.Add(helsinki, 7.3);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 5.4);
            result.Add(london, 1.1);
            result.Add(lubeck, 4.3);
            result.Add(malmo, 3.7);
            result.Add(minden, 0.0);
            result.Add(naestved, 3.9);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 8.3);
            result.Add(oslo, 3.2);
            result.Add(posen, 0.0);
            result.Add(reval, 7.1);
            result.Add(riga, 6.7);
            result.Add(ripen, 1.5);
            result.Add(rostock, 4.2);
            result.Add(scarborough, 1.2);
            result.Add(stavanger, 2.6);
            result.Add(stettin, 4.5);
            result.Add(stockholm, 6.1);
            result.Add(thorn, 5.2);
            result.Add(visby, 5.5);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesHamburg
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(helsinki, 6.9);
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 5.0);
            result.Add(london, 2.5);
            result.Add(lubeck, 3.9);
            result.Add(malmo, 3.3);
            result.Add(minden, 0.0);
            result.Add(naestved, 3.5);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 7.9);
            result.Add(oslo, 2.8);
            result.Add(posen, 0.0);
            result.Add(reval, 6.7);
            result.Add(riga, 6.3);
            result.Add(ripen, 0.9);
            result.Add(rostock, 3.8);
            result.Add(scarborough, 2.3);
            result.Add(stavanger, 2.5);
            result.Add(stettin, 4.1);
            result.Add(stockholm, 5.7);
            result.Add(thorn, 4.9);
            result.Add(visby, 5.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesHelsinki
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(kaunas, 0.0);
            result.Add(konigsburg, 2.5);
            result.Add(london, 8.1);
            result.Add(lubeck, 4.1);
            result.Add(malmo, 3.7);
            result.Add(minden, 0.0);
            result.Add(naestved, 4.3);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 2.1);
            result.Add(oslo, 5.4);
            result.Add(posen, 0.0);
            result.Add(reval, 0.3);
            result.Add(riga, 1.6);
            result.Add(ripen, 6.1);
            result.Add(rostock, 3.8);
            result.Add(scarborough, 7.4);
            result.Add(stavanger, 6.1);
            result.Add(stettin, 3.7);
            result.Add(stockholm, 1.7);
            result.Add(thorn, 3.1);
            result.Add(visby, 2.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesKaunas
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(konigsburg, 0.0);
            result.Add(london, 0.0);
            result.Add(lubeck, 0.0);
            result.Add(malmo, 0.0);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.0);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 0.0);
            result.Add(oslo, 0.0);
            result.Add(posen, 0.0);
            result.Add(reval, 0.0);
            result.Add(riga, 0.0);
            result.Add(ripen, 0.0);
            result.Add(scarborough, 0.0);
            result.Add(stavanger, 0.0);
            result.Add(stettin, 0.0);
            result.Add(stockholm, 0.0);
            result.Add(thorn, 0.0);
            result.Add(visby, 0.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesKonigsburg
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(london, 6.3);
            result.Add(lubeck, 2.2);
            result.Add(malmo, 1.8);
            result.Add(minden, 0.0);
            result.Add(naestved, 2.5);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 4.2);
            result.Add(oslo, 3.5);
            result.Add(posen, 0.0);
            result.Add(reval, 2.3);
            result.Add(riga, 1.8);
            result.Add(ripen, 4.3);
            result.Add(rostock, 1.9);
            result.Add(scarborough, 5.5);
            result.Add(stavanger, 4.4);
            result.Add(stettin, 1.6);
            result.Add(stockholm, 1.8);
            result.Add(thorn, 1.1);
            result.Add(visby, 1.3);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesLondon
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(lubeck, 5.2);
            result.Add(malmo, 4.6);
            result.Add(minden, 0.0);
            result.Add(naestved, 4.7);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 9.0);
            result.Add(oslo, 4.1);
            result.Add(posen, 0.0);
            result.Add(reval, 8.0);
            result.Add(riga, 7.6);
            result.Add(ripen, 2.4);
            result.Add(rostock, 5.1);
            result.Add(scarborough, 1.5);
            result.Add(stavanger, 3.3);
            result.Add(stettin, 5.4);
            result.Add(stockholm, 7.0);
            result.Add(thorn, 6.0);
            result.Add(visby, 6.3);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesLubeck
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(malmo, 0.8);
            result.Add(minden, 0.0);
            result.Add(naestved, 0.6);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 5.5);
            result.Add(oslo, 2.4);
            result.Add(posen, 0.0);
            result.Add(reval, 3.9);
            result.Add(riga, 3.5);
            result.Add(ripen, 3.2);
            result.Add(rostock, 0.3);
            result.Add(scarborough, 4.5);
            result.Add(stavanger, 3.1);
            result.Add(stettin, 1.2);
            result.Add(stockholm, 2.9);
            result.Add(thorn, 2.4);
            result.Add(visby, 2.3);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesMalmo
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(minden, 0.0);
            result.Add(naestved, 1.0);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 5.1);
            result.Add(oslo, 1.8);
            result.Add(posen, 0.0);
            result.Add(reval, 3.5);
            result.Add(riga, 3.1);
            result.Add(ripen, 2.6);
            result.Add(rostock, 0.6);
            result.Add(scarborough, 3.9);
            result.Add(stavanger, 2.5);
            result.Add(stettin, 0.9);
            result.Add(stockholm, 2.5);
            result.Add(thorn,  2.1);
            result.Add(visby, 1.8);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesMinden
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(naestved, 0.0);
            result.Add(nijmegen, 0.0);
            result.Add(novgorod, 0.0);
            result.Add(oslo, 0.0);
            result.Add(posen, 0.0);
            result.Add(reval, 0.0);
            result.Add(riga, 0.0);
            result.Add(ripen, 0.0);
            result.Add(scarborough, 0.0);
            result.Add(stavanger, 0.0);
            result.Add(stettin, 0.0);
            result.Add(stockholm, 0.0);
            result.Add(thorn, 0.0);
            result.Add(visby, 0.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesNaestved
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(novgorod, 5.7);
            result.Add(oslo, 2.0);
            result.Add(posen, 0.0);
            result.Add(reval, 4.1);
            result.Add(riga, 3.7);
            result.Add(ripen, 2.7);
            result.Add(rostock, 0.6);
            result.Add(scarborough, 4.0);
            result.Add(stavanger, 2.7);
            result.Add(stettin, 1.4);
            result.Add(stockholm, 3.1);
            result.Add(thorn, 2.6);
            result.Add(visby, 2.5);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesNijmegen
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesNovgorod
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(oslo, 6.6);
            result.Add(posen, 0.0);
            result.Add(reval, 2.3);
            result.Add(riga, 3.3);
            result.Add(ripen, 7.3);
            result.Add(rostock, 5.3);
            result.Add(scarborough, 8.4);
            result.Add(stavanger, 7.2);
            result.Add(stettin, 5.1);
            result.Add(stockholm, 3.5);
            result.Add(thorn, 5.1);
            result.Add(visby, 3.7);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesOslo
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(posen, 0.0);
            result.Add(reval, 5.2);
            result.Add(riga, 4.8);
            result.Add(ripen, 2.1);
            result.Add(rostock, 2.3);
            result.Add(scarborough, 3.3);
            result.Add(stavanger, 1.8);
            result.Add(stettin, 2.6);
            result.Add(stockholm, 4.2);
            result.Add(thorn, 3.6);
            result.Add(visby, 3.5);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesPosen
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(reval, 0.0);
            result.Add(riga, 0.0);
            result.Add(ripen, 0.0);
            result.Add(scarborough, 0.0);
            result.Add(stavanger, 0.0);
            result.Add(stettin, 0.0);
            result.Add(stockholm, 0.0);
            result.Add(thorn, 0.0);
            result.Add(visby, 0.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesReval
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(riga, 1.3);
            result.Add(ripen, 5.9);
            result.Add(rostock, 3.6);
            result.Add(scarborough, 7.2);
            result.Add(stavanger, 5.9);
            result.Add(stettin, 3.5);
            result.Add(stockholm, 1.5);
            result.Add(thorn, 2.9);
            result.Add(visby, 1.8);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesRiga
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(ripen, 5.5);
            result.Add(rostock, 3.2);
            result.Add(scarborough, 6.8);
            result.Add(stavanger, 5.5);
            result.Add(stettin, 3.0);
            result.Add(stockholm, 1.7);
            result.Add(thorn, 2.5);
            result.Add(visby, 1.6);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesRipen
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(rostock, 3.1);
            result.Add(scarborough, 1.9);
            result.Add(stavanger, 1.7);
            result.Add(stettin, 3.4);
            result.Add(stockholm, 4.9);
            result.Add(thorn, 4.2);
            result.Add(visby, 4.3);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesRostock
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(scarborough, 4.4);
            result.Add(stavanger, 3.0);
            result.Add(stettin, 0.9);
            result.Add(stockholm, 2.6);
            result.Add(thorn, 2.2);
            result.Add(visby, 2.0);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesScarborough
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(stavanger, 2.2);
            result.Add(stettin, 4.7);
            result.Add(stockholm, 6.2);
            result.Add(thorn, 5.3);
            result.Add(visby, 5.6);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesStavanger
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(stettin, 3.4);
            result.Add(stockholm, 4.9);
            result.Add(thorn, 4.2);
            result.Add(visby, 4.3);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesStettin
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(stockholm, 2.5);
            result.Add(thorn, 1.8);
            result.Add(visby, 1.8);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesStockholm
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(thorn, 2.4);
            result.Add(visby, 0.8);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesThorn
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(visby, 1.8);
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesVisby
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            result.Add(warsaw, 0.0);
            return result;
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private Dictionary<City, double> journeyTimesWarsaw
      {
         get
         {
            Dictionary<City, double> result = new Dictionary<City, double>();
            return result;
         }
      }
   }
}
